package proyectoX;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;



/**
 * Clase que implementa las entidades del juego.
 * @author Daprotis Mauro - Heiland Federico
 *
 */

public class Entity {
	
	protected int x;
	protected int y;
	//protected Sprite sprite;
	protected Image sprite;
	protected double dx;
	protected double dy;
	/** The rectangle used for this entity during collisions  resolution */
	private Rectangle me = new Rectangle();
	/** The rectangle used for other entities during collision resolution */
	private Rectangle him = new Rectangle();
	/**
	 * Constructor de la clase
	 * @param im imagen
	 * @param x1 coordenada X
	 * @param y1 coordenada Y
	 */
	public Entity(Image im,int x1,int y1){
		this.sprite = im;
		x=x1;
		y=y1;
		
	}
	/**
	 * Mueve la entidad por la grilla.
	 * @param delta velocidad.
	 */
	public void move(long delta) {
		// update the location of the entity based on move speeds
		x += (delta * dx) / 1000;
		y += (delta * dy) / 1000;
	}
	/**
	 * Dibuja la entidad en el juego.
	 * @param g panel donde dibujar.
	 */
	public void draw(Graphics g) {
		//sprite.draw(g,(int) x,(int) y);
	//	public void draw(Graphics g,int x,int y) {
			g.drawImage(sprite,x,y,null);
		
	}
	/**
	 * Revisa si el objeto colisiona contra otro.
	 * @param other otro objeto.
	 * @return verdadero si colisiona, falso sino.
	 */
	public boolean collidesWith(Objeto other) {
		me.setBounds((int) x,(int) y,sprite.getWidth(null),sprite.getHeight(null));
		him.setBounds((int) other.x,(int) other.y,other.getImage().getImage().getWidth(null),other.getImage().getImage().getHeight(null));
		

		return me.intersects(him);
	}
	/**
	 * Devuelve coordenada X
	 * @return X
	 */
	public int getX(){
		return x;
	}
	/**
	 * Devuelve coordenada Y.
	 * @return Y
	 */
	public int getY(){
		return y;
	}
	}
	
	


